<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Cache-Control" content="no-siteapp">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=1, minimum-scale=1, maximum-scale=1">
<meta name="renderer" content="webkit">
<meta name="google" value="notranslate">
<meta name="robots" content="index,follow">


<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="足迹">
<meta name="twitter:description" content="走过就要留下点什么">
<meta name="twitter:image:src" content="http://wenjq.gitee.io/images/avatar.jpg">

<meta property="og:url" content="http://wenjq.gitee.io">
<meta property="og:title" content="足迹">
<meta property="og:description" content="走过就要留下点什么">
<meta property="og:site_name" content="足迹">
<meta property="og:image" content="http://wenjq.gitee.io/images/avatar.jpg">
<meta property="og:type" content="website">
<meta name="robots" content="noodp">

<meta itemprop="name" content="足迹">
<meta itemprop="description" content="走过就要留下点什么">
<meta itemprop="image" content="http://wenjq.gitee.io/images/avatar.jpg">

<link rel="canonical" href="http://wenjq.gitee.io">

<link rel="shortcut icon" href="/favicon.png">
<link rel="apple-itouch-icon" href="/favicon.png">
<link rel="stylesheet" href="/bundle/index.css">
<script type="text/javascript">
    var timeSinceLang = {
        year: '年前',
        month: '个月前',
        day: '天前',
        hour: '小时前',
        minute: '分钟前',
        second: '秒前'
    };
    var root = '';
</script>


        <meta name="keywords" content="maven,">
        <meta name="description" content="Maven的使用">
        <meta name="author" content="">
        <title>Maven的使用</title>
    </head>
    <body>
        <article class="container">
            <header class="header-wrap">
  <a class="index" href="/">
    <img class="logo" src="/images/avatar.jpg" />
    足迹
  </a>
  <ul class="menu">
      <li class="menu-item"><a href="/archive.html">归档</a></li>
      <li class="menu-item"><a href="/tag.html">标签</a></li>
      <li class="menu-item"><a href="/atom.xml">订阅</a></li>
  </ul>
</header>

            <article class="main article">
                <h1 class="title">Maven的使用</h1>
                <section class="info">
                    
                    
                    
                    <span class="date" data-time="1484186393"><span class="from"></span></span>
                    
                    <span class="tags"><a class="tag" href="/tag/maven/index.html">maven</a></span>
                </section>
                <article class="content"><h2>Maven项目建立</h2>

<p>Maven支持在项目根目录直接运行 mvn 指令进行程序的创建，但考虑到实际开发中都是使用IDE（eclipse或intellij idea）进行开发、创建。因此这里直接演示使用Intellij idea进行项目的创建。
打开intellij idea，依次点击File-&gt;New-&gt;Project-&gt;Maven
<img src="" data-src="/images/2018053011495704.png" alt="2018053011495704.png" />
选择JDK版本，这里可直接下一步进行GroupID等信息的设置，创建一个Maven的基本工程。如果需要创建诸如：web、包含测试单元的项目等，则需要勾选Create from archetype 选择对应的项目进行创建。
常用的版本如下：
<strong>maven-archetype-quickstart</strong>
默认的Archetype,基本内容包括：</p>

<ul>
<li>一个包含junit依赖声明的pom.xml</li>
<li>src/main/java主代码目录及一个名为App的类</li>
<li>src/test/java测试代码目录及一个名为AppTest的测试用例</li>
</ul>

<p><strong>maven-archetype-webapp</strong>
一个最简单的Maven war项目模板，当需要快速创建一个Web应用的时候可以使用它。生成的项目内容包括：</p>

<ul>
<li>一个packaging为war且带有junit依赖声明的pom.xml</li>
<li>src/main/webapp/目录</li>
<li>src/main/webapp/index.jsp文件</li>
<li>src/main/webapp/WEB-INF/web.xml文件</li>
</ul>

<p>配置maven插件</p>

<pre><code>&lt;build&gt;
    &lt;plugins&gt;
        &lt;plugin&gt;
            &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
            &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
            &lt;version&gt;2.3.2&lt;/version&gt;
            &lt;configuration&gt;
                &lt;source&gt;1.8&lt;/source&gt;
                &lt;target&gt;1.8&lt;/target&gt;
            &lt;/configuration&gt;
        &lt;/plugin&gt;
    &lt;/plugins&gt;
&lt;/build&gt;
</code></pre>

<h2>为项目添加jar包</h2>

<p>使用maven后，项目开发中的jar包管理变得极其简单，开发者只需要在项目根目录的pom.xml配置文件中添加所需要的jar包即可。同时对于依赖的其他jar包，maven也会自动引用。
例如，初始的pom，以及项目中的Libraries
<img src="" data-src="/images/20180530115044350.png" alt="20180530115044350.png" />
<img src="" data-src="/images/20180530115052340.png" alt="20180530115052340.png" /></p>

<p>添加mysql的数据库驱动
<img src="" data-src="/images/20180530115103895.png" alt="20180530115103895.png" />
<img src="" data-src="/images/20180530115111806.png" alt="20180530115111806.png" />
可以看到jar总是包含在 dependencies 节点下，每个jar包包含groupId artifactId version 属性。这里推荐使用intellij idea，该IDE可实时的索引jar包，开发者无需知道具体的版本、分组等信息，只需要在idea给出的提示中选择合适的版本即可。如果使用eclipse，推荐在 <a href="http://mvnrepository.com/tags/maven">http://mvnrepository.com/tags/maven</a> 检索需要的jar包后拷贝到pom</p>

<p><font color="red">注：为项目添加非maven仓库jar包。例如，项目其他组件jar包,可使用如下方式
<img src="" data-src="/images/20180530115130307.png" alt="20180530115130307.png" />
其中，${project.basedir}所指的目录为项目根目录，即pom文件所在的目录。
<img src="" data-src="/images/20180530115157540.png" alt="20180530115157540.png" />
</font></p>

<h2>项目打包</h2>

<h3>设置打包格式</h3>

<pre><code>&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;!--其他设置 ... --&gt;
    &lt;packaging&gt;war&lt;/packaging&gt;
&lt;version&gt;1.1.0&lt;/version&gt;
</code></pre>

<h3>配置</h3>

<p>点击EditConfigurations
<img src="" data-src="/images/20180530115229152.png" alt="20180530115229152.png" />
点击左侧的 加号 并选择maven
<img src="" data-src="/images/20180530115244145.png" alt="20180530115244145.png" />
在command line键入 package 并保存。</p>

<h3>运行命令</h3>

<p>选择建好的打包指令，运行，可以看到项目已被打包。
<img src="" data-src="/images/20180530115303269.png" alt="20180530115303269.png" />
<font color="red">  注：若项目中包含非maven仓库的jar包，例如项目的其他组件。maven打包时不会将本地引用的jar包打包进来，需要使用pom文件来引用该jar包即可。引用方式参考【为项目添加jar包】
</font></p>
</article>
                <section class="author">
                    
                    <a class="name" href="/about..html"></a>
                    <div class="intro"></div>
                </section>
                <section class="recommend">
                    
                    <section class="nav prev more">
                        <div class="head">上篇文章</div>
                        <a class="link" href="/dotnetcore_vue.html">.net core &#43; vue开发单页应用（一）</a>
                    </section>
                    
                    
                    <section class="nav next more">
                        <div class="head">下篇文章</div>
                        <a class="link" href="/2018053003.html">Maven安装及配置</a>
                    </section>
                    
                </section>
                

            </article>
        </article>
        <footer class="footer">
    <span class="copyright">
        足迹 ©
        <script type="text/javascript">
            document.write(new Date().getFullYear());
        </script>
    </span>
    <span class="publish">Powered by <a href="http://www.chole.io/" target="_blank">Ink</a></span>
</footer>

        <script src="/bundle/index.js"></script>
    </body>
</html>
